Data storage device including self-test features

ABSTRACT

In a particular embodiment, a data storage device includes a non-volatile storage media adapted to store data and a measurement circuit adapted to measure at least one performance parameter related to the storage device during operation. The data storage device further includes logic coupled to the measurement circuit and adapted to predict a failure associated with at least a portion of the non-volatile storage media when the measured performance parameter exceeds a threshold value and to optionally perform corrective action.

FIELD OF THE DISCLOSURE

The present disclosure is generally related to a data storage device including self-test features.

BACKGROUND

Storage devices typically include non-volatile storage media, such as magnetic discs within a hard disc drive and flash memory chips within a solid-state drive. Some storage systems, such as a hybrid disc drive, contain a mixture of non-volatile media types. In general, hybrid disc drives include non-volatile electronics, such as flash memory, that can be used in conjunction with the non-volatile rotating storage media to retain data through power loss and reset events.

In many types of solid-state memory, such as NAND flash memory, data are erased in blocks and are read/written in pages. A block often contains multiple pages. When updating data stored in a solid-state memory, it is common for valid data to be read from the memory to another location (such as into a volatile memory buffer), modified and written to an erased data block. In some designs, the data are written back to the same block from which they were read, where the block is erased after the data is read but before the modified data is written to the block. In other designs, the data are written to a previously-erased block elsewhere within the storage device. The storage cell of the solid-state memory can deteriorate over time as it is exposed to multiple erase/write/read cycles. Further, solid-state memories and hard disc storage media may deteriorate at different rates.

In general, storage devices and flash memory devices are tested during manufacturing to improve the quality of the finished product. Unfortunately, device failures that occur in the finished product during operation can be catastrophic to a user. While error correction and predictive failure features are sometimes included in storage devices, such features often predict failures based on the quantity of data in error. Prediction of device failure based upon a quantity of data errors may be insufficient to prevent unrecoverable loss of data.

While storage systems can store data in non-volatile media for retention, in many cases it is advantageous to keep data in a volatile memory buffer, such as a dynamic random access memory (DRAM). For example, data may be stored in a DRAM to improve the performance of the storage system or to reduce the wear on the storage components by reducing erases and writes. However, it is generally still desirable to retain information that is stored in the DRAM upon unexpected loss of external system power. In some storage systems, the protection of such information is valuable enough to warrant additional protection of the volatile buffer to make the information held in the buffer non-volatile. This protection generally requires the use of an internal energy source within the storage system. In a disc drive, the kinetic momentum of the rotating disc pack can be used as an energy source. If the rotating disc pack has insufficient energy for the particular design, the rotating disc pack energy source can be replaced or augmented by an auxiliary power device, such as a battery or a double-layer capacitor. Generally, solid-state drives do not include a kinetic energy source, so such drives typically contain an auxiliary power device to provide this protection. In both of these cases, however, a failure related to such auxiliary power sources can cause unexpected loss or corruption of data.

SUMMARY

In a particular embodiment, a data storage device includes a non-volatile storage media adapted to store data and a measurement circuit adapted to measure at least one performance parameter related to the non-volatile storage media during operation. The data storage device further includes logic coupled to the measurement circuit and adapted to predict a failure associated with at least a portion of the non-volatile storage media when the measured performance parameter exceeds a threshold value.

In another particular embodiment, a storage device includes one or more storage media to store data and a measurement circuit adapted to measure at least one performance parameter associated with at least one of the one or more storage media. The storage device further includes a control circuit coupled to the measurement circuit and to the one or more storage media. The control circuit is adapted to control read, write, and erase (if erasure is required) access to the one or more storage media. The control circuit detects a failure associated with at least one of the one or more storage media when the at least one performance parameter exceeds a threshold. The control circuit initiates a corrective action in response to the detected failure.

In still another particular embodiment, a method is disclosed that includes measuring a performance parameter associated with at least one storage media of a storage device via a measurement circuit within the storage device when the at least one storage media is accessed. The method further includes predicting a failure when the performance parameter exceeds a threshold and preventing data loss or corruption by taking a corrective action in response to the predicted failure.

In yet another particular embodiment, a method is disclosed that includes measuring a performance parameter associated with internal power supplying components of the storage system. The method further includes predicting a failure when the performance parameter exceeds a threshold and preventing data loss or corruption by taking a corrective action in response to the predicted failure.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a particular illustrative embodiment of a system including a hybrid storage device that has a measurement circuit and a spindle power monitor to test the storage device;

FIG. 2 is a block diagram of a second particular illustrative embodiment of a system including a storage device that has a device health monitor to test the storage device;

FIG. 3 is a flow diagram of a particular illustrative embodiment of a method of performing a self-test of a storage device;

FIG. 4 is a flow diagram of a second particular illustrative embodiment of a method of performing a self-test of a storage device;

FIG. 5 is a flow diagram of a third particular illustrative embodiment of a method of performing a self-test of a storage device;

FIG. 6 is a flow diagram of a fourth particular illustrative embodiment of a method of performing a self-test of a storage device; and

FIG. 7 is a flow diagram of a fifth particular illustrative embodiment of a method of performing a self-test of a storage device.

DETAILED DESCRIPTION OF ILLUSTRATIVE EMBODIMENTS

FIG. 1 is a block diagram of a particular illustrative embodiment of a system 100 including a hybrid storage device 102 that has a measurement circuit 124 and a power monitor 132 used to test the storage device 102. As used herein, the term “hybrid storage device” refers to a data storage device that includes both rotating storage media and solid-state storage media. The storage device 102 is adapted to communicate with a host system 104. In a particular embodiment, the host system 104 is typically a computer, but could be a bus expander, a processor, a personal digital assistant (PDA), another electronic device, or more generally any device capable of generating and/or relaying commands to a mass storage device.

The storage device 102 includes recording subsystem circuitry 106, a head-disc assembly 108, and disc-head assembly control circuitry 120, which includes monitoring circuitry. The recording subsystem circuitry 106 includes an interface circuit 112, which includes a data buffer for temporarily buffering the data and a sequencer for directing the operation of the read/write channel 116 and the preamplifier 150 during data transfer operations. The interface circuit 112 is coupled to the host system 104 and to a control processor 118, which is adapted to control operation of the storage device 102. In a particular embodiment, the control processor 118 includes device failure prediction logic 119 that is adapted to predict a failure associated with the storage device 102 based on one or more measured performance parameters. In an alternative embodiment, the device failure prediction logic 119 can be separate from the control processor 118. In a particular example, the device failure prediction logic 119 can be included within the measurement circuit 124. The control processor 118 is coupled to a servo circuit 122 that is adapted to control the position of one or more read/write heads 154 relative to one or more discs 156 as part of a servo loop established by the one or more read/write heads 154. Generally, the one or more read/write heads 154 are mounted to a rotary actuator assembly to which a coil 152 of a voice coil motor (VCM) is attached. As is known in the art, a VCM includes a pair of magnetic flux paths between which the coil 152 is disposed so that the passage of current through the coil causes magnetic interaction between the coil 152 and the magnetic flux paths, resulting in the controlled rotation of the actuator assembly and the movement of the one or more heads 154 relative to the surfaces of the one or more discs 156. The servo circuit 122 is used to control the application of current to the coil 152, and hence the position of the heads 154 with respect to the tracks of the one or more discs 156.

In general, the disc-head assembly control circuitry 120 includes the servo circuit 122 and includes a spindle circuit 126 that is coupled to a spindle motor 158 to control the rotation of the one or more discs 156. The disc-head assembly control circuitry 120 further includes a measurement circuit 124 that is coupled to the control processor 118 and that is adapted to measure one or more electrical parameters associated with the storage device 102.

In a particular embodiment, the disc-head assembly control circuitry 120 includes a power monitor 132 that is coupled to the spindle circuit 126 and adapted to measure the usable energy available in the back electromotive force associated with the spindle motor 158. In a particular example, the back electromotive force (EMF) represents the spindle motor 158 operating as a generator, utilizing a kinetic inertia associated with the rotation of the one or more discs 156 to generate the back EMF. In a particular instance, the energy from the back EMF may be measured as a power level. When power is interrupted to the storage device, the control processor 118 programs the data into the non-volatile memory component, such as the data flash 134. In a particular example, once the user's data and the firmware metadata have been stored, the measurement circuitry 124 can record the time it took to program the data flash 134. The control processor 118 can then program one bit of memory (of the data flash 134) at fixed periodic intervals until the power from the spindle motor 158 has been exhausted. When power is restored, the device failure prediction logic 119 can use the stored bits to determine how much power the spindle motor 158 supplied.

The storage device 102 also includes an auxiliary power device 130 that is coupled to the spindle power monitor 132 and to the measurement circuit 124. In a particular embodiment, the auxiliary power device 130 can be a capacitor or a battery that is adapted to supply power to the storage device 102 under certain operating conditions. In a particular example, the auxiliary power device 130 can provide a power supply to the recording subsystem assembly 106 and to the disc-head assembly 108 to record data to the one or more discs 156 when power is turned off. Further, the auxiliary power device 130 may supply power to the recording subsystem assembly 106 to record data to a data flash 134 or to a code (NOR) flash 138 when power is turned off.

Additionally, the storage device 102 includes a non-volatile solid-state storage component for data, labeled “data (NAND) flash” 134. Although NAND flash is shown in FIG. 1, the flash memory 134 could be any non-volatile electronic storage component capable of storing data. For example, the flash memory 134 could be NAND flash, NOR flash, MRAM, phase-change memory, another solid-state memory, or any combination thereof. Additionally, the storage device 102 typically includes a dynamic random access memory (DRAM) 136, and or other memory, or any combination thereof.

Additionally, the storage device 102 includes internal code storage 138. Although the internal code storage block shown generally indicated at 138 is labeled for purposes of easy comprehension as “code (NOR) flash”, the “code (NOR) flash 138 could be any non-volatile solid-state storage component, and in some embodiments the code storage might only exist as a portion of the data storage component 134. In a particular embodiment, the code (NOR) flash 138 stores self-test instructions 140, including instructions to monitor particular performance parameters associated with the storage device 102 each time data is written to, read from, and/or erased from the storage device 102. In a particular example, the self-test instructions 140 include a sequence of data values that can be written to an erased block within the data (NAND) flash 134, for example, while the write time is measured by the measurement circuit 124.

In general, the storage device 102 frequently erases, writes and reads non-volatile electronics (NVE), such as the data (NAND) flash 134 and the code (NOR) flash 138, to retain data through power loss and reset events. In flash components, erasing and writing of the NVE is typically accomplished by storing and depleting electrical charges in a “floating” gate in a NOR or NAND gate cell, many of which are included in a single NVE memory. In a phase-change memory, erasing and writing are accomplished by heating and cooling chalcogenic material to switch it between amorphous and crystalline states. Unfortunately, it is common for these and other NVE storage devices to degrade with usage in their ability to store data, which degradation results in changes of erase and/or write and/or read times up and to the point of failure.

During operation of the storage device 102, the measurement circuit 124 measures and records a length of time to complete an erase/write/read operation for a portion of the memory, such as a block, page, segment, paragraph, etc. or for the entire memory. Not shown here, it is a common practice to perform signal conditioning, such as to normalize and/or filter the measured times. The device failure prediction logic 119 is adapted to compare the measured erase/write/read time to a corresponding threshold, and if the threshold is exceeded, the device failure prediction logic 119 is adapted to initiate one or more recover steps via the control processor 118. The one or more recovery steps can include, but are not limited to, retrying the operation, performing additional testing on the storage, reconditioning the storage, reallocating the affected block/page, asserting an error message to the host system 104, posting an error, and performing further testing on the flash segment. In a particular embodiment, the device failure prediction logic 119 may be adapted to monitor programming time on a historical basis and to use trends, filtered or unfiltered, to make intelligent device failure predictions.

In a particular embodiment, the data storage device 102 includes a non-volatile storage media, such as the one or more discs 156, the data (NAND) flash 134, the code (NOR) flash 138, other memory 140, or any combination thereof. The non-volatile storage media is adapted to store data, including instructions executable by the control processor, user data, measurement data, other information, or any combination thereof.

The storage device 102 includes the measurement circuit 124 that is adapted to measure at least one performance parameter related to the non-volatile storage media during operation. In a particular example, the at least one performance parameter is an erase time, a write time, a read time, or any combination thereof, that is associated with the data (NAND) flash 134, the code (NOR) flash 138, the other memory 142, or any combination thereof. In another particular example, the at least one performance parameter is the usable energy available from the back electromotive force associated with the spindle motor 158. The back electromotive force represents electrical energy generated by the spindle motor 158 using a kinetic inertia associated with rotation of the one or more discs 156. In still another particular example, the at least one performance parameter is a power level associated with the auxiliary power device 130 when the auxiliary power device 130 supplies power to the recording subsystem assembly 106.

The storage device 102 further includes logic, such as the device failure prediction logic 119, that is coupled to the measurement circuit 124 and that is adapted to predict a failure associated with at least a portion of the non-volatile storage media, when the measured performance parameter exceeds a threshold value. For example, the erase/write/read time associated with the data (NAND) flash 134 changes as the data (NAND) flash 134 deteriorates. When the (normalized and/or filtered) measured erase/write/read time associated with the data (NAND) flash 134 exceeds a corresponding threshold, the logic is adapted to predict a failure associated with the data (NAND) flash 134 and to take corrective action to prevent data loss.

In another example, when the measured power level of the auxiliary power device 130 falls below a power threshold, the logic is adapted to predict a failure associated with the auxiliary power device 130, which may indicate that the storage device 102 may be unable to record data to the non-volatile storage media when power is lost. In this example, the logic is adapted to take a corrective action to prevent data loss in response to the predicted failure. In still another example, when the measured back EMF from the spindle motor 158 falls below an EMF threshold, the logic is adapted to predict a failure and to take action to prevent data loss.

In a particular example, the storage device 102 is adapted to reallocate data from a first storage location to a second storage location in response to the predicted failure. In another particular example, the storage device 102 is adapted to prohibit access to at least a portion of the non-volatile storage media in response to the predicted failure. In another particular example, the storage device 102 disables volatile write-caching as a response to a predicted failure. In still another particular example, the storage device 102 is adapted to generate an alert, such as an error message, and to communicate the alert to the host system 104 via the interface 112.

Further, using the built-in self-test, it is possible to test the non-volatile electronics, such as the flash memory, without external test equipment. Additionally, the built-in self-test, such as the self-test instructions 140, and the measurement circuitry 124 make it possible to periodically test the storage device 102 during regular operation to ensure that the non-volatile memory, such as the data (NAND) flash 134 and the code (NOR) flash 138, continues to work reliably. In a particular embodiment, the built-in self-test instructions 140 include a set of data patterns for erasing and reprogramming the flash memories 134 and 138. For example, the test patterns can include a pattern of all one (“1”) values, a pattern of all zero (“0”) values, a “walking ones” pattern, a “walking zeroes” pattern, a pattern containing the logical or physical storage address, a pseudorandom pattern, another pattern, or any combination thereof. In a particular embodiment, the control processor 118 is adapted to use the self-test instructions 140 to erase and reprogram the data (NAND) flash 134. During erase, write, and read operations, the measurement circuitry 124 measures the erase/write/read time.

In a particular embodiment, the device contains voltage regulator circuitry 128 that can be controlled to provide a higher or lower voltage than normal, “margining” the voltage supply to provide additional stress factors that can ferret out weak or defective components. In a particular example, the control processor 118 uses the built-in self-test instructions 140 to run a series of erase/programming cycles against the memory using the patterns. The tests can be repeated with the voltage margined high or low. The results of the tests can be used to identify failing components and to make decision about the overall health of the storage device 102. In a particular implementation, the storage device 102 can include a programmable clock that allows the data (NAND) flash 134, the code (NOR) flash 138, other memory, or any combination thereof to be run at faster or slower than normal clock speeds, providing additional stress on the non-volatile electronics. Further, testing may be performed using various combinations of the above stresses.

FIG. 2 is a block diagram of a second particular illustrative embodiment of a system 200 including a data storage device 202 that has a device health monitor 216 to test the data storage device 202. In a particular embodiment, the data storage device 202 is a solid-state memory device that is adapted to communicate with a host system 204 via an interface 206. The data storage device 202 includes a control circuit 208 that is adapted to communicate with a primary storage media 210 and with other memory 214. The control circuit 208 is also coupled to an auxiliary power component 212. In a particular embodiment, the auxiliary power component 212 is an energy storage component, such as a battery or a capacitor, which is adapted to provide auxiliary power to the storage device 202 when power is lost. The control circuit 208 is also coupled to the device health monitor 216, which monitors one or more performance parameters associated with the storage device 202 to predict a storage device failure.

The device health monitor 216 includes a built-in self-test feature 218, which may be used by the controller 208 to test a health associated with the primary storage media 210 or the other memory 214. In a particular example, the built-in self-test feature 218 includes instructions executable by the control circuit 208 to erase a block of data from a selected memory, such as the primary storage media 210, to write a new page of data to the selected memory, and to read a page of data from the selected memory. The built-in self-test feature 218 may also include a data sequence to be written to the selected memory. The device health monitor 216 also includes an auxiliary power device monitor 220 adapted to monitor a power supplied by the auxiliary power component 212 when the auxiliary power component 212 is acting as an energy source. The device health monitor 216 further includes one or more performance thresholds 222. In a particular illustrative embodiment, the device health monitor 216 may include a spindle energy power monitor 224, when the primary storage media 210 is a rotating storage media that is rotated using a spindle motor, such as the spindle motor 158 illustrated in FIG. 1. In an alternative embodiment, where the storage device 202 is a solid-state storage device, the spindle energy power monitor 224 may be omitted.

The device health monitor 216 further includes a programming time monitor 226 that is adapted to monitor an erase time, a write time, a read time, or any combination thereof, when data are erased, written, or read to/from a selected memory, such as the primary storage media 210 or the other memory 214. In a particular embodiment, the device health monitor 216 includes a performance measurement log 228 that is adapted to record measurement data related to the one or more measured performance parameters. Finally, the device health monitor 216 includes device failure prediction logic 230 that is adapted to predict a failure associated with the storage device 202 based on at least one of the one or more measured performance parameters.

In a particular embodiment, the storage device 202 includes a control circuit 208 that is coupled to a non-volatile storage media, such as the primary storage media 210, the other memory 214, or any combination thereof. The control circuit 208 is adapted to control read/write access to the non-volatile storage media. In a particular example, the device health monitor 216 is adapted to monitor one or more performance parameters associated with the storage device 202 to predict a failure associated with the storage device 202, when at least one of the one or more performance parameters exceeds a respective performance threshold of the one or more performance thresholds 222.

In a particular embodiment, the control circuit 208 is adapted to take corrective action to prevent data loss in response to the predicted failure. In a particular example, the control circuit 208 is adapted to reallocate data from a first portion 232 of the primary storage media 210 to a second portion 234 of the primary storage media 210 in response to the predicted failure. In another particular example, the control circuit 208 is adapted to prohibit access to the first or second portions 232 or 234 of the primary storage media 210 in response to the predicted failure. In another particular example, the control circuit 208 disables volatile write-caching as a response to a predicted failure. In another particular example, the control circuit 208 is adapted to generate an alert and to send the alert to the host system 204 via the interface 206 in response to the predicted failure.

In a particular embodiment, the primary storage media 210 is a non-volatile, solid-state memory. The device health monitor 216 is adapted to utilize the built-in self-test feature 218 and the programming time monitor 226 each time the primary storage media 210 is accessed to determine a time parameter, which is compared to one of the performance thresholds 222 to predict a failure associated with at least a portion of the primary storage media 210.

FIG. 3 is a flow diagram of a particular illustrative embodiment of a method of performing a self-test of a storage device. The method starts at 300. At 302, erase/write/read times of an individual block/page of a storage media are measured when an erase/write/read process is invoked. In a particular embodiment, the erase/write/read process can be invoked by a host system, by an interrupt, by a controller of the storage device, by another process, or any combination thereof. Moving to 304, the measured erase/write/read times are recorded in a performance log. Continuing to 306, the measured erase/write/read times are compared against erase/write/read thresholds. Advancing to 308, when the measured erase, write, or read times do not exceed corresponding erase/write/read thresholds, the method terminates without error at 312.

Returning to 308, when the measured erase/write/read times exceed corresponding erase/write/read thresholds, the method proceeds to 310 and corrective fault recovery actions are performed. In a particular example, a corrective fault recovery action may include disabling volatile write-caching as a response to a predicted failure. In another particular example, the corrective fault recovery action may include generating an alert to a host system, reallocating data from a first portion to a second portion a storage media, prohibiting access to the a portion of the storage media, taking other data protection actions, or any combination thereof. The method terminates at 312.

FIG. 4 is a flow diagram of a second particular illustrative embodiment of a method of performing a self-test of a storage device. The method starts at 400. At 402, optionally, an environmental temperature of a storage device under test is set. Advancing to 404, a voltage is adjusted that is applied to a solid-state storage memory component of the storage device. Continuing to 406, erase/write/read times of an individual block/page of a storage media are measured when an erase/write/read process is invoked. In a particular embodiment, the erase/write/read process can be invoked by a host system, by an interrupt, by a controller of the storage device, by another process, or any combination thereof. Moving to 408, the measured erase/write/read times are recorded in a performance log. Continuing to 410, the measured erase/write/read times are compared against erase/write thresholds. Advancing to 412, when the measured erase and write times do not exceed corresponding erase/write thresholds, the method advances to 416 and the voltage that is applied to a solid-state storage memory component of the storage device is adjusted to an operating voltage level. The method terminates at 418.

Returning to 412, when the measured erase/write/read times exceed corresponding erase/write/read thresholds, the method proceeds to 414 and corrective fault recovery actions are performed. In a particular example, a corrective fault recovery action may include disabling volatile write-caching as a response to a predicted failure. In another particular example, the corrective fault recovery action may include generating an alert to a host system, reallocating data from a first portion to a second portion a storage media, prohibiting access to the a portion of the storage media, taking other data protection actions, or any combination thereof. Continuing to 416, the voltage that is applied to a solid-state storage memory component of the storage device is adjusted to an operating voltage level. The method terminates at 418.

In general, non-volatile memory devices, such as the data (NAND) flash 134 and the code (NOR) flash 138 illustrated in FIG. 1, are tested by a manufacturer prior to shipment. These tests are performed by iteratively erasing and then writing and reading the non-volatile memory devices using a plurality of test patterns. If the memory device passes its tests, the memory device is shipped to the end user for incorporation into a final product. However, it is sometimes beneficial to test the non-volatile memory device after it is installed into the final product. For storage devices, such as the hybrid storage device 102 illustrated in FIG. 1, it is sometimes desirable to test the non-volatile memory devices after assembly is complete. Further, using the built-in self-test, it is possible to test the non-volatile electronics, such as the flash memory, without external test equipment or with less-costly test equipment. Additionally, the built-in self-test and the measurement circuitry make it possible to periodically test the storage device during regular operation to ensure the non-volatile memory continues to work reliably.

In a particular embodiment, a manufacturer's test equipment can invoke the built-in self-tests at various temperatures as an additional stress that is not always present in the field. Further, a manufacturer's test process can use the built-in self-test, optionally in conjunction with the measurement circuitry (such as a programming time monitor), to collect data about the device performance. The data can be used as part of a statistical process control to monitor and control the quality of the final product.

FIG. 5 is a flow diagram of a third particular illustrative embodiment of a method of performing a self-test of a storage device. The method starts at 500. At 502, data are optionally written to a page of memory within the non-volatile storage. In general, block 502 is unnecessary if the data are known or can be determined via an error-correcting code. Advancing to 504, the data are read back to determine a quality value associated with the data. In a particular embodiment, the quality value is related to the number of bits in error within the page. In another particular embodiment, the quality value is determined by totaling the mean-square error of the sensed storage level of each individual bit cell from its optimal value. For example, if the non-volatile electronic storage device contains circuitry capable of converting the analog voltage of a bit cell's charge to a digital value, this information can be used to determine a value related to the amount of error. Proceeding to 506, the quality value is recorded in a performance log. Moving to 508, the quality value is compared to a threshold. If the quality value is less than the threshold, the method terminates without error at 512. Returning to 508, if the quality value is greater than the threshold, the method advances to 510 and corrective action is performed to protect the data. The method terminates at 514.

FIG. 6 is a flow diagram of a fourth particular illustrative embodiment of a method of performing a self-test of a storage device. The method starts at 600. At 602, an electrical load is applied to a power-supplying component of a storage device. Advancing to 604, a power level associated with read/write circuitry of a storage device including a storage media is measured when data is erased from or written to a portion of the storage media. In a particular example, the power level is measured from a spindle motor, an auxiliary power device, another component, or any combination thereof, using a measurement circuit. In a particular illustrative embodiment, the power level is determined by measuring the length of time in which the spindle motor or power device remains above a threshold. This is accomplished by periodically programming a series of non-volatile locations at fixed timed intervals until power falls below a threshold.

Continuing to 606, the measured power level is recorded in a measurement log. Proceeding to 608, the measured power level is compared to a threshold value. In a particular example, the measured power level is compared to the threshold time value by logic, which may be part of the measurement circuit, a control circuit, a processor, or any combination thereof. At 608, if the measured power level is less than a threshold value, the method is terminated without error at 612. Otherwise, at 608, if the measured power level exceeds a threshold value, the method advances to 610 and corrective fault recovery actions are performed. The he corrective fault recovery actions may include disabling volatile write-caching as a response to a predicted failure. In another particular example, the corrective fault recovery action may include generating an alert to a host system, reallocating data from a first portion to a second portion a storage media, prohibiting access to the a portion of the storage media, taking other data protection actions, or any combination thereof. In a particular embodiment, the power level may be adjusted to a normal operating power level prior to termination. The method terminates at 612.

FIG. 7 is a flow diagram of a fifth particular illustrative embodiment of a method of performing a self-test of a storage device. The method starts at 700. At 702, a performance parameter associated with at least one storage media of a storage device is measured via a measurement circuit within the storage device when the at least one storage media is accessed. In a particular embodiment, the performance parameter comprises a read time, a write time, an erase time, or any combination thereof. In a particular illustrative embodiment, measuring the performance parameter includes measuring the energy associated with the back electromotive force (EMF) of a spindle motor of the storage device when at least one storage media is rotating, where the back EMF is power generated from the kinetic inertia of the storage media. In another particular illustrative embodiment, measuring the performance parameter includes measuring a power supply level associated with an auxiliary power supply when the auxiliary power supply is providing operating power to circuitry of the storage device.

Continuing to 704, a failure is predicted when the performance parameter exceeds a threshold. Proceeding to 706, data loss is prevented by taking a corrective action in response to the predicted failure. In a particular embodiment, circuitry of the storage device predicts the failure and prevents data loss by taking the corrective action. In a particular example, data loss is prevented by reallocating data from a memory location associated with the at least one storage media to another storage location in response to the predicted failure. In another particular example, data loss is prevented by prohibiting future write access to the at least one storage media in response to the predicted failure. The method terminates at 708.

In a particular embodiment, the method further includes generating an alert to a host system. The alert may be generated by logic, by a control circuit, by the measurement circuit, or any combination thereof. In general, the alert indicates an error message or annunciation associated with the at least one storage media in response to the predicted failure.

In general, it should be understood that the “start” blocks indicated at 300, 400, 500, 600, and 700 in FIGS. 3-7 represent a trigger that initiates the particular method flow. In general, the trigger may be initiated by a host system, such as the host systems 104 and 204 in FIGS. 1 and 2, may be initiated by firmware within a storage device, may be triggered by a peripheral device (not shown), may be initiated by circuitry within the storage device, or any combination thereof.

In general, the measurement circuitry is incorporated within the storage device to monitor performance parameters associated with the storage device during normal operation. By monitoring performance parameters, component failures may be predicted before data is lost by comparing the performance parameters to respective performance thresholds and by taking corrective action when the performance parameters deviate from the performance thresholds. In a particular example, when the power level falls below a power threshold, it may be desirable to perform further testing of the storage device to isolate a problem and to provide an error message to a host system that can be used to fix the problem. In general, one or more performance parameters can be measured, including the erase/write/reads times of the memory, the power supply of the auxiliary power device, the energy associated with the back electromotive force of the spindle motor, other performance parameters, or any combination thereof.

In a particular embodiment, once a failure is predicted, the control circuitry of the storage device can take precautions to protect user data, such as by reallocating the user data to another portion of the storage media that is tested to have better erase/reprogram times. Further, by including the measurement circuitry and the logic to determine corrective actions within the storage device, the storage device can be made to be more reliable, since device failures can be predicted before data is lost, allowing the device to take corrective action or allowing the device to notify the user so that the user can take corrective actions to protect the user data.

Although the present invention has been described with reference to preferred embodiments, workers skilled in the art will recognize that changes may be made in form and detail without departing from the spirit and scope of the invention. 

1. A data storage device comprising: a non-volatile storage media adapted to store data; a measurement circuit adapted to measure at least one performance parameter related to the storage device during operation; and logic coupled to the measurement circuit and adapted to predict a failure associated with at least a portion of the non-volatile storage media when the measured performance parameter exceeds a threshold value.
 2. The storage device of claim 1, further comprising a control circuit coupled to the non-volatile storage media and adapted to control read/write/erase access to the non-volatile storage media.
 3. The storage device of claim 2, wherein the control circuit is adapted to reallocate data from the at least a portion of the non-volatile storage media to a second portion of the non-volatile storage media in response to the predicted failure.
 4. The storage device of claim 2, wherein the control circuit is adapted to prohibit access to the at least a portion of the non-volatile storage media in response to the predicted failure.
 5. The storage device of claim 1, wherein the non-volatile storage media comprises a solid-state memory, and wherein the measured performance parameter comprises an access time parameter.
 6. The storage device of claim 5, wherein the access time parameter comprises one of an erase time representing a first time parameter to erase a block of data from the solid-state memory, a write time including a second time parameter to write a block of data to the solid-state memory, a read time include a third time parameter to read a block of data from the solid-state memory, or any combination thereof.
 7. The storage device of claim 1, further comprising an auxiliary power supply component, wherein the measured performance parameter comprises a power level associated with the auxiliary power supply component when the auxiliary power supply component is operating as an energy source.
 8. The storage device of claim 1, further comprising a volatile write cache to temporarily store data to be written to the storage media, wherein the logic is adapted to disable writing of data to the volatile write cache in response to the predicted failure.
 9. The storage device of claim 1, further comprising: a disc assembly including storage media to store data; a spindle motor coupled to the disc assembly to rotate the storage media; and a spindle motor control circuit to control operation of the spindle motor; wherein the measured performance parameter comprises a back electromotive force associated with the spindle motor acting as a generator by utilizing a kinetic inertia of the disc assembly when the disc assembly is rotating.
 10. The storage device of claim 1, wherein the non-volatile storage media comprises a rotatable storage media, the storage device further comprising: a solid-state memory to store data; a spindle motor adapted to rotate the non-volatile storage media; and an auxiliary battery to act as a power source when power is lost; wherein the measurement circuit is adapted to measure an erase/write time associated with the solid-state memory, to measure a back electromotive force (EMF) associated with the spindle motor, and to measure a power supply from the auxiliary battery; and wherein the logic is adapted to predict the failure based on at least one of the measured erase/write/read time, the measured back EMF, and the measured power supply.
 11. A storage device comprising: one or more storage media to store data; a measurement circuit adapted to measure at least one performance parameter associated with at least one of the one or more storage media; and a control circuit coupled to the measurement circuit and to the one or more storage media, the control circuit adapted to control read, write, and erase access to the one or more storage media, the control circuit to detect a failure associated with at least one of the one or more storage media when the at least one performance parameter exceeds a threshold, the control circuit to initiate a corrective action in response to the detected failure.
 12. The storage device of claim 11, wherein the corrective action comprises at least one of reallocating data from a first location at the one or more storage media to a second location at the one or more storage media based on the detected failure.
 13. The storage device of claim 11, wherein the at least one performance parameter comprises a write time to complete a write operation to at least one of the one or more storage media.
 14. The storage device of claim 11, wherein the at least one performance parameter comprises an erase time to complete an erase operation to at least one of the one or more storage media.
 15. The storage device of claim 11, wherein the at least one performance parameter comprises a read time to complete a read operation to at least one of the one or more storage media.
 16. The storage device of claim 11, further comprising a spindle motor coupled to at least one storage media of the one or more storage media to rotate the at least one storage media, wherein the at least one performance parameter comprises a back electromotive force associated with the spindle motor acting as a generator by utilizing a kinetic inertia of the at least one storage media when the at least one storage media is rotating.
 17. The storage device of claim 11, further comprising an auxiliary power storage device coupled to the control circuit, wherein the at least one performance parameter comprises a power level associated with the auxiliary power storage device when the auxiliary power storage device is supplying power to the control circuit.
 18. A method comprising: measuring a performance parameter associated with at least one storage media of a storage device via a measurement circuit within the storage device when the at least one storage media is accessed; predicting a failure when the performance parameter exceeds a threshold; and preventing data loss by taking a corrective action in response to the predicted failure.
 19. The method of claim 18, wherein circuitry of the storage device predicts the failure and prevents data loss by taking the corrective action.
 20. The method of claim 18, wherein the performance parameter comprises a read time, a write time, an erase time, or any combination thereof.
 21. The method of claim 18, wherein measuring the performance parameter comprises measuring a back electromotive force (EMF) associated with a spindle motor of the storage device when the at least one storage media is rotating, the back EMF representing a kinetic inertia of the rotation associated with the at least one storage media.
 22. The method of claim 18, wherein measuring the performance parameter comprises measuring a power supply level associated with an auxiliary power supply when the auxiliary power supply is providing operating power to circuitry of the storage device.
 23. The method of claim 18, further comprising generating an alert to a host system, the alert indicting an error message associated with the at least one storage media in response to the predicted failure.
 24. The method of claim 18, wherein preventing data loss comprises reallocating data from a memory location associated with the at least one storage media to another storage location in response to the predicted failure.
 25. The method of claim 18, wherein preventing data loss comprises prohibiting future write access to the at least one storage media in response to the predicted failure. 